#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
# 
#     http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
load("@rules_proto//proto:defs.bzl", "proto_library")
load("@rules_cc//cc:defs.bzl", "cc_proto_library")
load("@rules_proto_grpc//cpp:defs.bzl", "cpp_grpc_library", "cpp_grpc_compile")

proto_library(
    name = "apache_rocketmq_definition",
    srcs = [
        "apache/rocketmq/v2/definition.proto",
    ],
    deps = [
        "@com_google_protobuf//:empty_proto",
        "@com_google_protobuf//:field_mask_proto",
        "@com_google_protobuf//:duration_proto",
        "@com_google_protobuf//:timestamp_proto",
        "@com_google_googleapis//google/rpc:code_proto",
        "@com_google_googleapis//google/rpc:error_details_proto",
        "@com_google_googleapis//google/rpc:status_proto",
    ],
    strip_import_prefix = "/proto",
)

proto_library(
    name = "apache_rocketmq_admin",
    srcs = [
        "apache/rocketmq/v2/admin.proto",
    ],
    deps = [
        ":apache_rocketmq_definition",
        "@com_google_protobuf//:field_mask_proto",
        "@com_google_protobuf//:empty_proto",
    ],
    strip_import_prefix = "/proto",
)

proto_library(
    name = "apache_rocketmq_service",
    srcs = [
        "apache/rocketmq/v2/service.proto",
    ],
    deps = [
        ":apache_rocketmq_definition",
        "@com_google_protobuf//:any_proto",
        "@com_google_protobuf//:duration_proto",
        "@com_google_protobuf//:timestamp_proto",
        "@com_google_googleapis//google/rpc:code_proto",
        "@com_google_googleapis//google/rpc:error_details_proto",
        "@com_google_googleapis//google/rpc:status_proto",
    ],
    strip_import_prefix = "/proto",
)

cpp_grpc_library(
    name = "rocketmq_grpc_library",
    protos = [
        ":apache_rocketmq_definition",
        ":apache_rocketmq_admin",
        ":apache_rocketmq_service",
        "@com_google_googleapis//google/rpc:code_proto",
        "@com_google_googleapis//google/rpc:error_details_proto",
        "@com_google_googleapis//google/rpc:status_proto",
    ],
    visibility = ["//visibility:public"]
)